/*
 * Intervalo.h
 *
 *  Created on: 03/06/2014
 *      Author: jubuntu
 */

#ifndef INTERVALO_H_
#define INTERVALO_H_


#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <vector>

typedef unsigned char Byte;

const int NUMERO_BITS = 32; //cantidad de bits de un entero

class Intervalo{
	public:
		unsigned int techo;
		unsigned int piso;
		int contadorDeUnderflow;

		float probabilidadDelCero;
		std::vector<Byte>* bufferDeCharsAEscribir;
		Byte charIncompleto;

		unsigned int cantidadDeBitsEnCharIncompleto;

		void chequearSiSeCompletoElChar();

	public:
		Intervalo();
		~Intervalo();
		void normalizar();
		void setFrecuenciDelCero(int cantidadDeCeros);
		void setFrecuenciDelUno(int cantidadDeUnos);
		int avanzar();
		void expandirIntervaloCon(int numeroQueSalio);
		std::vector<Byte>* getString();
};



#endif /* INTERVALO_H_ */
